﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;


namespace QLKHACHHANG.DanhMucForm
{
    public partial class frmLoaiKH : DevExpress.XtraEditors.XtraForm
    {
        frmCustomerConfig rootform;
        bool isSingle;
        public frmLoaiKH(frmCustomerConfig root)
        {
            InitializeComponent();
            rootform = root;
            isSingle = false;
        }
        public frmLoaiKH()
        {
            InitializeComponent();
            isSingle = true;
        }  
        private void frmLoaiKH_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'ds_LoaiKH.tbl_LoaiKH' table. You can move, or remove it, as needed.
            try
            {
                this.tbl_LoaiKHTableAdapter.Connection.ConnectionString = SetConfig.getAppSetting("ConnectionString");
                this.tbl_LoaiKHTableAdapter.Fill(this.ds_LoaiKH.tbl_LoaiKH);
                gvLoaikh.FocusedRowHandle = -999997;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }
       

        private void frmLoaiKH_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("Bạn có muốn thoát khỏi màn hình " + this.Text + " ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {
                if (!isSingle) rootform.UpdateLoaiKH();               
            }
            else
            {
                e.Cancel = true;
            }
            
        }

        private void ResetForm()
        {
            btThem.Text = "Lưu";
            txtMaloaikh.Properties.ReadOnly = false;
            btXoa.Enabled = false;
            btSua.Enabled = false;
            txtMaloaikh.Focus();
            txtMaloaikh.Text = "";
            txtTenloaikh.Text = "";
            txtGhichu.Text = "";
            gvLoaikh.FocusedRowHandle = -999997; 
        }
        private void btThem_Click(object sender, EventArgs e)
        {
            
            if (btThem.Text == "Thêm")
            {
                // reset
                ResetForm();                
            }
            else
            {
                //luu 
                if (txtMaloaikh.Text.Equals("") || txtTenloaikh.Text.Equals(""))
                {
                    MessageBox.Show("Vui lòng xem lại thông tin nhập vào !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;                  
                }
                else
                {
                    try
                    {
                        DataRow row = ds_LoaiKH.tbl_LoaiKH.NewRow();
                        row["Maloaikh"] = txtMaloaikh.Text;
                        row["Tenloaikh"] = txtTenloaikh.Text;
                        row["Ghichu"] = txtGhichu.Text;
                        ds_LoaiKH.tbl_LoaiKH.Rows.Add(row);
                        this.tbl_LoaiKHTableAdapter.Update(this.ds_LoaiKH.tbl_LoaiKH);
                    }
                    catch (Exception ex)
                    {
                        if (ex.Message.Contains("constrained to be unique"))
                        {
                            MessageBox.Show("Không lưu được do thông tin đã bị trùng, xin vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else MessageBox.Show("Lưu thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    
                }
                ResetForm();  
            }
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn có muốn xóa loại khách hàng có mã: " + txtMaloaikh.Text + " ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    txtMaloaikh.Text = "";
                    txtTenloaikh.Text = "";
                    txtGhichu.Text = "";
                    gvLoaikh.DeleteSelectedRows();
                    this.tbl_LoaiKHTableAdapter.Update(this.ds_LoaiKH.tbl_LoaiKH);    
                }                
            }catch(Exception ex)
            {
                if (ex.Message.Contains("conflicted"))
                {
                    MessageBox.Show("Không xóa đơợc do thông tin được sử dụng bởi chức năng khác, vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else MessageBox.Show("Xoá thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.tbl_LoaiKHTableAdapter.Fill(this.ds_LoaiKH.tbl_LoaiKH);  
            }

        }

        private void btSua_Click(object sender, EventArgs e)
        {
            try
            {
                gvLoaikh.GetFocusedDataRow()["Tenloaikh"] = txtTenloaikh.Text;
                gvLoaikh.GetFocusedDataRow()["Ghichu"] = txtGhichu.Text;
                this.tbl_LoaiKHTableAdapter.Update(this.ds_LoaiKH.tbl_LoaiKH);
               
            }
            catch (Exception ex)
            {
                MessageBox.Show("Sửa thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void gvLoaikh_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {

            if (gvLoaikh.FocusedRowHandle >= 0)
            {
                txtMaloaikh.Text = gvLoaikh.GetFocusedDataRow()["Maloaikh"].ToString();
                txtTenloaikh.Text = gvLoaikh.GetFocusedDataRow()["Tenloaikh"].ToString();
                txtGhichu.Text = gvLoaikh.GetFocusedDataRow()["Ghichu"].ToString();
                txtMaloaikh.Properties.ReadOnly = true;
                btSua.Enabled = true;
                btXoa.Enabled = true;
                btThem.Text = "Thêm";
            }
            else
            {
                ResetForm();
            }
        }  
        private void btThoat_Click(object sender, EventArgs e)
        {
            Close();          
        }

        private void btRefresh_Click(object sender, EventArgs e)
        {
            this.tbl_LoaiKHTableAdapter.Fill(this.ds_LoaiKH.tbl_LoaiKH);
        }

    }
}